home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / tls / tls085.solintel.Z / tls085.solintel / lib / vtcl / tests / cberror3.tcl < prev    next >
Encoding:
Text File  |  1995-07-20  |  1.8 KB  |  76 lines

  1. # CVS $Id: cberror3.tcl,v 1.2 1995/04/26 16:38:38 zibi Exp $
  2. #
  3. # This tests the error callback routines
  4.  
  5. #
  6. # This handles the error without generating another error.
  7. proc errorCB {cbs} {
  8.     set target [keylget cbs widget]
  9.     set dialog [keylget cbs dialog]
  10.     set result [keylget cbs result]
  11.     set callback [keylget cbs callback]
  12.  
  13.     set str "Handling callback for <$target>"
  14.     set str "$str \n  result is <$result>"
  15.     set str "$str \n  callback is <$callback>"
  16.  
  17.     set txt [VtGetValues $dialog -userData]    
  18.     VtSetValues $txt -value $str
  19. }
  20.  
  21. #
  22. # This handles an error, but generates an error of it's own
  23. #
  24. proc errorErrorCB {cbs} {
  25.      echo "I'm dying...."
  26.  
  27.      # This generates an error
  28.      continue
  29. }
  30.  
  31. proc generateErrorCB {errStr cbs} {
  32.      # This generates an error
  33.      error $errStr
  34.  
  35.      # This statement isn't reached
  36.      echo "here"
  37. }
  38.  
  39. proc msgCB {errStr cbs} {
  40.     set target [keylget cbs widget]
  41.     set msg [VtMessageDialog $target.msg -message $errStr \
  42.          -errorCallback errorCB -okCallback "generateErrorCB inMsgDialog" ]
  43.     VtShow $msg
  44.  
  45.     generateErrorCB msgCB
  46. }
  47.  
  48. global txt
  49.  
  50. set app [VtOpen error]
  51.  
  52. VtSetAppValues $app -errorCallback errorCB
  53.  
  54. set dlog [VtFormDialog $app.form -errorCallback errorCB \
  55.       -okCallback "generateErrorCB {OK buton} " \
  56.       -wmCloseCallback "generateErrorCB wmCloseCallback" ]
  57.  
  58. set errTxt [VtText $dlog.txt -rightSide FORM -rows 5 -columns 40 \
  59.         -wordWrap -verticalScrollBar on ]
  60.  
  61.  
  62. VtSetValues $dlog -userData $errTxt
  63.  
  64. set txt $errTxt
  65.  
  66. VtPushButton $dlog.but1 -label "Handle Error" -callback "generateErrorCB Handle"
  67. VtPushButton $dlog.but3 -label "Another Dialog" -callback "msgCB TEST"
  68.  
  69. VtPushButton $dlog.but2 -label "Error with Error" \
  70.          -errorCallback errorErrorCB  -callback "generateErrorCB bad"
  71.  
  72. VtShow $dlog
  73.  
  74. VtMainLoop
  75.